package com.tchintech.pay.utils;

import android.annotation.SuppressLint;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class TimeUtil {
    /**
     * 获取当前时间的毫秒数
     * long类型
     *
     * @return
     */
    public static long getNowMills() {
        //暂时为获取本地时间
        //若需要为网络时间 在此获取即可 以线程阻塞来实现  否则 时间则使用回传
        return System.currentTimeMillis();
    }

    /**
     * 获取当前时间的毫秒数
     * String 类型
     *
     * @return
     */
    public static String getsNowMills() {
        //暂时为获取本地时间
        //若需要为网络时间 在此获取即可 以线程阻塞来实现  否则 时间则使用回传
        return String.valueOf(System.currentTimeMillis());
    }

    /**
     * 格式化时间
     * yyyy-MM-dd HH:mm:ss
     *
     * @param time
     * @return
     */
    public static String formatterToDates(long time) {
        try {
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String result = format.format(new Date(time));
            return result;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    /**
     * 格式化时间
     * yyyy-MM-dd HH:mm:ss
     *
     * @return
     */
    @SuppressLint("SimpleDateFormat")
    public static String getNowYMDHMSTime() {


        SimpleDateFormat mDateFormat = new SimpleDateFormat(
                "yyyy-MM-dd HH:mm:ss");
        String date = mDateFormat.format(new Date());
        return date;
    }

    /**
     * MM-dd HH:mm:ss
     *
     * @return
     */
    @SuppressLint("SimpleDateFormat")
    public static String getNowMDHMSTime() {

        SimpleDateFormat mDateFormat = new SimpleDateFormat(
                "MM-dd HH:mm:ss");
        String date = mDateFormat.format(new Date());
        return date;
    }

    /**
     * MM-dd
     *
     * @return
     */
    @SuppressLint("SimpleDateFormat")
    public static String getNowYMD() {
        SimpleDateFormat mDateFormat = new SimpleDateFormat(
                "yyyy-MM-dd");
        String date = mDateFormat.format(new Date());
        return date;
    }

    /**
     * yyyy-MM-dd
     *
     * @param date
     * @return
     */
    @SuppressLint("SimpleDateFormat")
    public static String getYMD(Date date) {

        SimpleDateFormat mDateFormat = new SimpleDateFormat(
                "yyyy-MM-dd");
        String dateS = mDateFormat.format(date);
        return dateS;
    }

    /**
     * 将String类型的日期转换成 long类型的毫秒数
     *
     * @param date
     * @return
     */
    public static long parseDateTimeToMillis(String date) {
        try {
            SimpleDateFormat parser = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date d = parser.parse(date.trim());
            return d.getTime();
        } catch (Exception e) {
            e.printStackTrace();
            return 0;
        }
    }

    /**
     * 重新组装数据
     *
     * @param nowTime
     * @param wantTime
     * @return
     */
    public static String changeTime(String nowTime, String wantTime) {
        String year = nowTime.substring(0, 11);
        String newTime = year + wantTime;
        return newTime;
    }

    /**
     * 是否可以交易
     *
     * @return
     */
    public static boolean isDeal() {
        String nowTime = TimeUtil.formatterToDates(TimeUtil.getNowMills());
        //当前时间毫秒数
        Long nowTimes = TimeUtil.parseDateTimeToMillis(nowTime);
        //早上8点的毫秒数
        Long morningTime = TimeUtil.parseDateTimeToMillis(TimeUtil.changeTime(nowTime, "08:00:00"));
        //晚上10点的毫秒数
        Long nightTime = TimeUtil.parseDateTimeToMillis(TimeUtil.changeTime(nowTime, "22:00:00"));
        //当前时间大于早上8点，小于晚上10点方可交易
        if (nowTimes > morningTime && nowTimes < nightTime) {
            return true;
        } else {
            return false;
        }
    }


}
